package day18;
/*本类用来测试成员内部类被private修饰
* 成员内部类被private修饰以后，无法被外界直接创建对象使用
* 所以可以创建外部类对象，通过外部类对象间接访问内部类的资源
* */
public class TestInner2 {
    public static void main(String[] args) {
        /*如何使用内部类的资源呢？*/
        //4.可以创建内部类Inner2的对象进行资源访问
        //Outer2.Inner2 oi2 = new Outer2().new Inner2();
        //oi2.eat();
        /*如果Inner2被private修饰，无法直接在外部创建对象，怎么办？*/
        //7.我们可以通过外部类对象，间接访问私有内部类的资源
        new Outer2().getInner2Eat();
    }
}
//1.创建外部类Outer2
class Outer2{
    //6.提供外部类公共的方法，在方法内部创建私有内部类的对象并调用内部类的方法
    public void getInner2Eat(){
        Inner2 in = new Inner2();//外部类中创建内部类对象
        in.eat();
    }

    //2.创建成员内部类Inner2
    /*成员内部类的位置：类里方法外*/
    //5.将成员内部类被private修饰--私有化，只能在本类中访问，外部无法访问
    private class Inner2{
        //3.创建成员内部类中的普通方法
        public void eat(){
            System.out.println("Inner2...eat()");
        }
    }
}